The following documents are referenced in this document:
|
1 |
Host Security Module 8000, Console Reference Manual, Document Number 1270A349 |
|
2 |
Host Security Module 8000, Host Command Reference Manual, Document Number 1270A351 |
|
3 |
PKCS#1: RSA Encryption Standard - Version 1.5 – Revised November 1993 (www.rsalabs.com) |
|
4 |
PKCS#1: RSA Cryptography Standard – Version 2.0 – October 1998 (www.rsalabs.com) |
|
5 |
Visa Integrated Circuit Card Specification, Version 1.3.2 – July 1999 (www.visa.com) |
The Host Security Module (HSM) acts as a peripheral to the Host computer. It performs cryptographic processing in a physically secure environment on behalf of the Host. The processing is performed by the HSM in response to commands, which it receives via a serial data link.
Typically the HSM is used in a realtime, online environment performing key management, PIN and MAC related functions as required by the system.
This manual contains programming notes to assist the application programmer. A complete command reference can be found in the Host Command Reference Manual.
For commands that are entered manually at a Console terminal attached to the HSM, see the Console Reference Manual. This also contains a glossary of terms.
The application program sends commands to the HSM, and receives responses from the HSM. Each command and response consists of a variable number of fields.
In order that the data can be sent via a serial data link, it is encoded as either ASCII or EBCDIC characters (the choice is made during the HSM configuration).
Versions of the HSM can be configured to support asynchronous, SNA, SDLC, TCP/IP, UDP and ESCON communications protocols. The HSM has no flow control support so the programmer must ensure that the HSM input buffer is not exceeded.
The HSM returns an error code to the Host as part of the response message. The programmer must ensure that a suitable response is made to each type of error.
In a typical system, a minimum of two HSMs are connected to the Host via separate Host ports. The HSMs are independent, and the programmer should make maximum use of all the HSMs to increase throughput, using one HSM if another is already processing data or is faulty. Also, it is useful to ensure that the program allows for additional HSMs to be subsequently added as throughput requirements increase.
Each HSM has a user storage area reserved for use by the programmer to store data required by the HSM during processing. Typically it is used to store keys and tables. Instructing the HSM to access data from user storage reduces the amount of data necessary in each command, and thus reduces the communications time.
There is a facility to print data (e.g., account holder PINs) at a printer connected to an HSM 8000 series. The HSM must have format information for the data before sending it to the printer. The program must send a print format command to the HSM before print commands can be issued.
Normally the HSM responds to all data that it receives. However, in some environments, the Host computer sends system messages to all attached devices. The HSM has support for two IBM environments where this occurs; these are CICS and IMS. If using the SRM in an IBM environment, see the SRM manual for the appropriate HSM configuration settings.